{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Alessandro Parisi \n",
      "last updated: 2019-04-02 \n",
      "\n",
      "CPython 3.5.4\n",
      "IPython 6.1.0\n",
      "\n",
      "numpy 1.15.2\n",
      "pandas 0.20.3\n",
      "matplotlib 2.2.2\n",
      "sklearn 0.20.0\n",
      "seaborn 0.8.0\n"
     ]
    }
   ],
   "source": [
    "%load_ext watermark\n",
    "%watermark -a \"Alessandro Parisi\" -u -d -v -p numpy,pandas,matplotlib,sklearn,seaborn\n",
    "# to install watermark launch 'pip install watermark' at command line\n",
    "import warnings \n",
    "warnings.simplefilter('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "dataset = pd.read_csv('../datasets/network-logs.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAEICAYAAACH9VqLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAHE9JREFUeJzt3Xu0pXV93/H3J4CaegkgB0oBM2jG\nVGPqQE8JKTVB8QLkAqTBQrJwYlkZsxa02tgmhGRVYuNaxCikrkSyhkIZEuSiSKGRGJHYGFfiZQaR\niyNlNBMYGWeGi4JiqMC3f+zf0e1hnzlnztnPnL33eb/W2ms/z++57O9z9jm/+cxzTVUhSZKk4fuB\n5S5AkiRpUhm0JEmSOmLQkiRJ6ohBS5IkqSMGLUmSpI4YtCRJkjpi0JIkSeqIQUsk2ZrktXNMOzLJ\n00ne39f2oiTf7HtVkm/1jb8qyRVJ/t+s+b7Qll/VlvnIrM/6syQX9I2/IMkfJrmvLb+ljR+U5Kok\nl89a/qeTPJTk0KH+gCSNhFn9ydNJvt03/stJLkjyZwOWqyQ/0oYvSPKdtszXk/xtkp+cNf/+SS5J\n8rUkjye5M8mb51pnX9v3fX6S5ye5qPWx32p92YeSHLOH6+nvY7/a1rnPfMu3n8nMz+fb7Wf23Z/h\nnvzstXgGLc3nTcAjwBlJng1QVfdV1fNmXm2+V/a1/U1re3f/fFX1ylnrPjbJcYM+NMmzgFuBHwNO\nBF4A/GvgIeAY4D8CJyd5XZv/OcClwNuravuwNl7S6JjV79wH/Fxf21V7sKpr2zoOAj4BfHBmQut7\nPg78MPCTwA8B/wW4MMmvL/QDWn/5V8CPAz9Lrw97GXANcPIe1Drjla3mE4BfAn51vgWq6qq+n9dJ\nwAMD+m51zKCl+bwJ+B3gO8DPDXnd7wZ+bzef+yLgtKr6YlU9XVU7q+q/VdXNVfUQ8B+A9UmeC7wD\n+HJVXTHkGiVNqKp6ErgKOCzJVGs+i17fc3pV/X1VfaeqPkrvP3fvTPKCBa7+LOBw4NSququqnqqq\nb1XVh6rqgiXU/CXgb4BXLHYd2rsMWppTklfR6yiuAa6jF36G6Y+Bl85x2PK1wEeras7d21X1QWAT\ncDWwDnjLkOuTNMHa3qs30dtT/khrfh3wF1X1rVmzXw88h95eroV4LfCXA9azJEleDrwK+Pww16vu\n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\n",
      "text/plain": [
       "<Figure size 720x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hist_dist = dataset[['LATENCY', 'THROUGHPUT']].hist(grid=False, figsize=(10,4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\naQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = dataset[['LATENCY', 'THROUGHPUT']].values\n",
    "\n",
    "plt.scatter(data[:, 0], data[:, 1], alpha=0.6)\n",
    "plt.xlabel('LATENCY')\n",
    "plt.ylabel('THROUGHPUT')\n",
    "plt.title('DATA FLOW')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mu param estimation: \n",
      "[14.42070163 15.39209133]\n",
      "\n",
      "\n",
      "sigma squared estimation: \n",
      "[2.09674794 1.37224807]\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    "Anomaly Detection Module\n",
    "Thanks to Oleksii Trekhleb:\n",
    "https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/anomaly_detection/gaussian_anomaly_detection.py\n",
    "\"\"\"\n",
    "from gaussian_anomaly_detection import GaussianAnomalyDetection\n",
    "\n",
    "gaussian_anomaly_detection = GaussianAnomalyDetection(data)\n",
    "\n",
    "print('mu param estimation: ')\n",
    "print(gaussian_anomaly_detection.mu_param)\n",
    "\n",
    "print('\\n')\n",
    "\n",
    "print('sigma squared estimation: ')\n",
    "print(gaussian_anomaly_detection.sigma_squared)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "threshold estimation: \n",
      "0.00027176836728971885\n"
     ]
    }
   ],
   "source": [
    "targets = dataset['ANOMALY'].values.reshape((data.shape[0], 1))\n",
    "probs = gaussian_anomaly_detection.multivariate_gaussian(data)\n",
    "\n",
    "(threshold, F1, precision_, recall_, f1_) = gaussian_anomaly_detection.select_threshold(targets, probs)\n",
    "\n",
    "print('\\n')\n",
    "\n",
    "print('threshold estimation: ')\n",
    "print(threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "outliers = np.where(probs < threshold)[0]\n",
    "\n",
    "# Plot original data.\n",
    "plt.scatter(data[:, 0], data[:, 1], alpha=0.6, label='Dataset')\n",
    "plt.xlabel('LATENCY')\n",
    "plt.ylabel('THROUGHPUT')\n",
    "plt.title('DATA FLOW')\n",
    "\n",
    "# Plot the outliers.\n",
    "plt.scatter(data[outliers, 0], data[outliers, 1], alpha=0.6, c='red', label='Outliers')\n",
    "\n",
    "# Display plots.\n",
    "plt.legend()\n",
    "plt.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "F1 score: \n",
      "0.6666666666666666\n"
     ]
    }
   ],
   "source": [
    "print('F1 score: ')\n",
    "print(F1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "\n",
    "FPR, TPR, OPC = roc_curve(targets, probs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0xf6d643780>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting Sensitivity\n",
    "plt.plot(OPC,TPR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0xf6d67a4e0>]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting ROC curve\n",
    "plt.plot(FPR,TPR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Py35",
   "language": "python",
   "name": "py35"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
